As many people know, it is required to construct a media graph in order to process data including solely a sound or a video (image) or a multimedia (hereinafter, simply referred to as a “media”) including a combination of the sound and the video, for example, to reproduce, store, or transmit a media file, receive a DMB (Digital Multimedia Broadcasting), support a video conference and the like (hereinafter, such a media processing work is generally referred to as “rendering”). Here, the “media graph” refers to a set of one or more components added or connected to process a media data stream, and the “component” refers to a computer program for processing the media data stream and the component can independently perform a function. Each component can selectively have one or more of an input port and an output port.
FIG. 1 is a diagram for describing a multimedia data processing structure according to a conventional example. As shown in FIG. 1, in the multimedia data processing structure according to the conventional example, an Application Program (APP) 10 is located in a top layer, a media graph including one or more components 30 is located in a bottom layer, and a media framework 20 corresponding to a base environment supporting a construction of the media graph and rendering, for example, a media framework (hereinafter, simply referred to as a “framework”) such as DirectShow, GStreamer and the like is located between the application program 10 and the components 30.
According to the above description, the conventional framework 20 performs functions of controlling the component 30 for reproducing a media, receiving an event from the component 30, and transferring the received event to the application program 10 as necessary. Further, the application program 10 also transfers commands such as a reproduction of and a search for a media data stream to the framework 20 as necessary, and the framework 20 having received such a command transfers the command to the component 30 and thus a user's demand is reflected. That is, the conventional media data processing structure includes a three-story structure including the application program 10, the component 30, and the framework 20 interposed between the application program 10 and the component 30. Media data, for example, media stream data or decoded media data is directly transferred from one component 30 to another component 30 without having to go through the framework 20 in order to prevent the capability deterioration generated due to a large amount of data.
However, according to the conventional media data processing structure as described above, since the framework 20 cannot access the media data transferred between the components 30, it is difficult to identify operations of the components 30 when the components 30 or the application program 10 are developed, and accordingly it takes a lot of time and effort to solve the problem generated when the components or the application program are developed.
In consideration of the above problem, a media data processing structure, in which an upper layer relays data between lower components, that is, the upper layer receives the data from the lower component and then outputs the data to the corresponding component or a following component, is proposed under the name of “OpenMax” (more precisely “OpenMax IL (Integration Layer), hereinafter, referred to as “OpenMax) by Khronos Group and is becoming an industrial standard. FIG. 2 is a diagram for describing the multimedia data processing structure according to such an OpenMax. The OpenMax corresponds to a standard for components and communication between the components, and defines an operation which the component should perform, an interface and the like, for example, defines a format setting in a media graph construction, a data transmission/reception interface setting, an attribute setting, a connection component setting, and a setting of inherent characteristics of the component.
The data processing structure as shown in FIG. 2 corresponds to a two-story structure in which an application program (referred to as a “client” in the OpenMax) 40 is located in a top layer, and one or more components 50 included in the media graph are located in a bottom layer, and is largely operated in two operation modes, that is, a direct communication mode (referred to as a “tunneling mode” in the OpenMax) in which data is directly transmit between the components 50 and an indirect communication mode (referred to as a “non-tunneling mode in the OpenMax) in which the data is transmitted between the components 50 via an application program 40.
In an example of FIG. 2, while a first component and a second component are operated in the tunneling mode and thus data is directly transmitted between the two components, the second component and a third component are operated in the non-tunneling mode and thus the data is transmitted between the two components via the application program 40. Accordingly, in the example of FIG. 2, the second component transmits the data by calling the application program 40, and the application program 40 transmits the data by calling the third component.
However, according to the conventional data processing structure as described above, for example when there are six components included in the media graph, a function is made after twelve handlers are individually defined for input ports and output ports, so that substantially much time and effort are required for developing the components or the application program.